package logicBusiness;

import DAO.DocumentoDao;
import models.Documento;
import java.util.List;
import javax.persistence.*;
import javax.swing.JTable;
import javax.swing.table.TableColumn;


public class DocumentoBL {

    private int ok = 0;
    DocumentoDao documentodao;

    public int crearDocumento(String nombredoc, String fecharealizacion, String elaboradopor) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        em.getTransaction().begin();
        Documento a = dao.crearDocumento(nombredoc, fecharealizacion, elaboradopor);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
//        else if (a.getnombredoc().equals(nombredoc)) {
//            ok = 1;
//        }
        return ok;


    }

    public List obtenerListDocumento() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        documentodao = new DocumentoDao(em);
        em.getTransaction().begin();

        List lista = null;               //coleccion de objetos con atributos de preinscrito
        lista = (List) documentodao.encontrarDocumento();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return lista;
    }

    public Integer resultado() {
        int i = 0;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        return i = dao.devolverId();
    }

    public void actualizarDocumento(JTable tablaentrada) {

        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        documentodao = new DocumentoDao(em);

        for (int iterador = 0; iterador < tablaentrada.getRowCount(); iterador++) {

            if (tablaentrada.getValueAt(iterador, 5).equals("si") ||
                    tablaentrada.getValueAt(iterador, 5).equals("s") ||
                    tablaentrada.getValueAt(iterador, 5).equals("S") ||
                    tablaentrada.getValueAt(iterador, 5).equals("SI")) {
                System.out.println((Integer) tablaentrada.getValueAt(iterador, 0));
                documentodao.ActualizarDocumento((Integer) tablaentrada.getValueAt(iterador, 0));
                //columna 0, columna con numero de identidad

            }

        }
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
    }

    public void borrarDocumento(Integer iddocumento) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        em.getTransaction().begin();
        dao.borrarDocumento(iddocumento);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        //return ok;

    }

    public int encontrarDocumento(Integer iddocumento) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        Documento a = dao.encontrarDocumento(iddocumento);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
//        else if (a.getiddocumento().equals(iddocumento)) {
//            ok = a.getiddocumento();
//        }
        return ok;

    }

    public Documento consultarDocumento(Integer iddocumento) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        Documento a = dao.encontrarDocumento(iddocumento);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
        ok = 0;
        } else if (a.getId().equals(idAula)) {
        ok = 1;
        }*/
        return a;
    }

    public int actualizarDocumento(Integer iddocumento, String nombredoc,
            String descripciondoc, String fecharealizacion, String elaboradopor) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        em.getTransaction().begin();
        Documento a = dao.actualizarDocumento(iddocumento, nombredoc, descripciondoc,
                fecharealizacion, elaboradopor);
        em.getTransaction().commit();

        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
//        else if (a.getiddocumento().equals(iddocumento)) {
//            ok = 1;
//        }
        return ok;

    }

    public List<Documento> findAll() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DocumentoDao dao = new DocumentoDao(em);
        List<Documento> a = dao.findAll();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
        ok = 0;
        } else if (a.getId().equals(idAula)) {
        ok = 1;
        }*/
        return a;
    }
}
